package zhaoq_hero.webviewshow;

import android.annotation.TargetApi;
import android.content.Context;
import android.content.Intent;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Build;
import android.util.Log;
import android.view.View;
import android.webkit.WebResourceRequest;
import android.webkit.WebResourceResponse;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import java.io.IOException;
import java.io.InputStream;

/**
 * ProjectName : zhaoq_hero.webviewshow
 * Created by : zhaoQiang
 * Email : zhaoq_hero163.com
 * On 2015/10/30
 * 15 / 19
 */
public class MyWebViewClient extends WebViewClient{

    public MyWebViewClient(Context context) {
        this.context = context;
    }

    private Context context;

    /**
     * 当 WebView  需要加载  GET请求的网址  的时候，或者调用loadURL的时候
     * !!!并且不是loadurl加载的时候 才会调用该方法，，，
     * webView会回调这个方法，如果当前的方法返回true,代表由程序自己完成加载。
     *  就像事件分发中，返回true一样的效果，false有webView内部的引擎完成加载
     * @param view
     * @param url
     * @return
     */
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        boolean ret = false;

        if (url.startsWith("abc://")) {

            Log.i("info","这是一个自定义请求方法。。。");
            //需要自定义的情况  内部处理网址
            Intent intent = new Intent(Intent.ACTION_SEND);

            intent.setType("text/html");

            intent.putExtra(Intent.EXTRA_TEXT, "Hello World");

            String address =
//                    "http://www.baidu.com";
                    url.substring("abc://".length()).replace("/","");

            intent.putExtra(Intent.EXTRA_HTML_TEXT,address);

            context.startActivity(intent);

            ret = true;

        }
        return ret;
    }

    /**
     * 当网页页面加载的时候  回调开始加载的
     * @param view
     * @param url
     * @param favicon 收藏夹显示的图标  网站服务器上指定 需要下载
     *                由webView自己下载  客户端自己来保存
     */
    @Override
    public void onPageStarted(WebView view, String url,  Bitmap favicon) {
        super.onPageStarted(view, url, favicon);

        Log.i("info","onPageStarted" + url);

    }

    /**
     * 当网页加载完成的时候   回调
     * @param view
     * @param url
     */
    @Override
    public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);

        Log.i("info","onPageFinished"+url);

    }


    /**
     * 当webView需要加载资源的时候，会回调这个方法
     * 作用：可以记录当前网页所有资源  例如实现  批量图片下载
     * @param view
     * @param url
     */
    @Override
    public void onLoadResource(WebView view, String url) {
        super.onLoadResource(view, url);

        Log.i("info","onLoadResource"+url);

    }


    /**
     *
     * 拦截资源的加载   并且进行替换,给客户端一个机会，将webView
     * @param view
     * @return
     */
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    @Override
    public WebResourceResponse shouldInterceptRequest(WebView view, String url) {

        Log.i("info","shouldIntercepterRequest"+url);

        WebResourceResponse ret = null;

//        if (url != null) {
//
//            AssetManager assets = context.getAssets();
//
//            try {
//
//                InputStream open = assets.open("ic_launcher.png");
//
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }

        return ret;
    }

}
